package com.systop.asset.mapper;

import com.systop.asset.entity.Transfer;
import com.systop.asset.entity.TransferDetail;
import com.systop.asset.entity.vo.TransferVo;

import java.util.List;

/**
 * <p>InterfaceName : TransferMapper</p>
 * <p>Description : </p>
 *
 * @author 孙伟光
 * @version 1.0
 * @date 2025/7/2 9:17
 */
public interface TransferMapper {

    /**
     * 查询调拨单列表（包含关联信息）
     * @param transfer 调拨单查询条件
     * @return 调拨单VO列表
     */
    public List<TransferVo> selectTransferVoList(Transfer transfer);

    /**
     * 根据ID查询调拨单详情
     * @param id 调拨单ID
     * @return 调拨单VO对象
     */
    public TransferVo selectTransferById(Long id);

    /**
     * 新增调拨单
     * @param transfer 调拨单实体
     * @return 影响行数
     */
    public int insertTransfer(Transfer transfer);

    /**
     * 审批调拨单
     * @param transfer 包含审批状态的调拨单实体
     * @return 影响行数
     */
    public int approveTransfer(Transfer transfer);

    /**
     * 根据调拨单ID查询调拨明细
     * @param transferId 调拨单ID
     * @return 调拨明细列表
     */
    public List<TransferDetail> selectTransferDetailByTransferId(Long transferId);

    /**
     * 新增调拨明细
     * @param transferDetail 调拨明细实体
     * @return 影响行数
     */
    public int insertTransferDetail(TransferDetail transferDetail);
}
